using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace Avon
{
    /// <summary>
    /// a koordonatorData
    /// </summary>
    public struct KoordonatorData
    {
        int m_KoordonatorID;
        string m_KoordonatorNev;
        int m_TanacsadonokSzama;
        string m_Cim;
        string m_Telefonszam;
        string m_Email;
        string m_CNP;

        /// <summary>
        /// a KoordonatorData konstruktora nev szerint
        /// </summary>
        /// <param name="Nev">a koordonator neve</param>

        public KoordonatorData(string Nev)
        {
            m_KoordonatorNev = Nev;

            m_KoordonatorID = 0;
            m_TanacsadonokSzama = 0;

            m_Cim = "";
            m_CNP = "";
            m_Email = "";
            m_Telefonszam = "";
        }
        /// <summary>
        /// a KoordonatorData konstruktora nev es id szerint
        /// </summary>
        /// <param name="Nev"></param>
        /// <param name="ID"></param>
        public KoordonatorData(string Nev, int ID)
        {
            m_KoordonatorNev = Nev;
            m_KoordonatorID = ID;

            m_TanacsadonokSzama = 0;

            m_Cim = "";
            m_CNP = "";
            m_Email = "";
            m_Telefonszam = "";
        }
        /// <summary>
        /// getterek es setterek
        /// </summary>
        public int KoordonatorID
        {
            get { return m_KoordonatorID;}
            set {m_KoordonatorID = value;}
        }

        public string KoordonatorNev
        {
            get { return m_KoordonatorNev; }
            set { m_KoordonatorNev = value; }
        }

        public int TanacsadonokSzama
        {
            get { return m_TanacsadonokSzama; }
            set { m_TanacsadonokSzama = value; }
        }

        public string Cim
        {
            get { return m_Cim; }
            set { m_Cim = value; }
        }

        public string CNP
        {
            get { return m_CNP; }
            set { m_CNP = value; }
        }

        public string Email
        {
            get { return m_Email; }
            set { m_Email = value; }
        }

        public string Telefonszam
        {
            get { return m_Telefonszam; }
            set { m_Telefonszam = value; }
        }
    }
    /// <summary>
    /// szarmaztatom a KoordonatorDALt a DAL bol
    /// </summary>
    public class KoordonatorDAL : DAL
    {
        /// <summary>
        /// le kerem a koordonatorok listajat es adatait
        /// </summary>
        /// <param name="nev"></param>
        /// <returns>vissza adja a koordonatorok listajat egy SQL parancs segitsegevel</returns>
        public List<KoordonatorData> GetKoordonatorList(String nev)
        {
            string query = "SELECT KoordonatorID, Nev, Tanacsadonokszama" +
                           " ,Cim, Telefonszam, Email, CNP FROM Koordonator";
            query +=  " WHERE Koordonator.Nev LIKE '" + nev + "%'";

            string error = string.Empty;

            SqlDataReader rdr = ExecuteReader(query, ref error);

            List<KoordonatorData> KoordonatorList = new List<KoordonatorData>();

            if (error == "OK")
            {
                while (rdr.Read())
                {
                    KoordonatorData item = new KoordonatorData();
                    item.KoordonatorID = Convert.ToInt32(rdr[0]);
                    item.KoordonatorNev = rdr[1].ToString();
                    item.TanacsadonokSzama = Convert.ToInt32(rdr[2]);
                    item.Cim = rdr[3].ToString();
                    item.Telefonszam = rdr[4].ToString();
                    item.Email = rdr[5].ToString();
                    item.CNP = rdr[6].ToString();

                    KoordonatorList.Add(item);

                }
            }
            CloseDataReader(rdr);
            return KoordonatorList;
        }

        /// <summary>
        /// koordonatorok szamat irja ki
        /// </summary>
        /// <returns></returns>

        public int GetKoordonatorNumber()
        {
            string query = "SELECT COUNT (*) FROM Koordonator", error = "";

            object value = ExecuteScalar(query, ref error);
            if (error == "OK")
            {
                return Convert.ToInt32(value);
            }
            else
            {
                return -1;
            }
        }

       /// <summary>
       /// a modosit metodus, ezt fogja meghivni a Koordonator form modosit gombja
       /// </summary>
       /// <param name="KoordonatorID">a koordonator idja</param>
       /// <param name="KoordonatorNev">a koordonator neve</param>
       /// <param name="TanacsadonokSzama">a koordonator tanacsadonoinek szama</param>
       /// <param name="Cim">a koordonator cime</param>
       /// <param name="Telefonszam">a koordonator telefonszama</param>
       /// <param name="Email">a koordonator email cime</param>
       /// <param name="CNP">a koordonator CNP je</param>
       /// <returns>egy SQL parancs eredmenyet adja vissza, amely modosit egy koordonatort a koordonator tablaban</returns>

        public string ModositKoordonator(int KoordonatorID, string KoordonatorNev, int TanacsadonokSzama, string Cim, string Telefonszam, string Email, string CNP)
        {
            string query = "UPDATE Koordonator" +
                           " SET Nev = '" + KoordonatorNev +
                           "', TanacsadonokSzama =" + TanacsadonokSzama +
                           "',Cim = " + Cim +
                           "', Telefonszam = " + Telefonszam +
                           ", Email = " + Email +
                           "', CNP = " + CNP +
                           "' WHERE KoordonatorID = " + KoordonatorID.ToString();
            return ExecuteNonQuery(query);
        }

        /// <summary>
        /// a beszur metodus, ezt fogja fol hasznalni a koordonatorForm nak  a beszuras gombja
        /// </summary>
        /// <param name="KoordonatorNev">a koordonator neve</param>
        /// <param name="TanacsadonokSzama">a kooordonator tanacsadonoinek szama</param>
        /// <param name="Cim">a koordonator cime</param>
        /// <param name="Telefonszam">a koordonator telefonszama</param>
        /// <param name="Email">a koordonator emial cime</param>
        /// <param name="CNP">a koordonator CNP je</param>
        /// <returns>vissza adja egy SQL parancs eredmenyet, amelyyel be tudunk szurni egy uj koordonatort a koordonator tablaba</returns>

        public string BeszurKoordonator(string KoordonatorNev, int TanacsadonokSzama, string Cim, string Telefonszam, string Email, string CNP)
        {
            string query = "INSERT INTO Koordonator(Nev,TanacsadonokSzama,Cim,Telefonszam,Email,CNP)" +
                            " VALUES ('" + KoordonatorNev + "','" + TanacsadonokSzama+ "','" + Cim + "','" + Telefonszam + "','" + Email + "')";

            return ExecuteNonQuery(query);
        }

        /// <summary>
        /// a torol metodus, ezt fogja meghivni KoordonatorForm torol gombja
        /// </summary>
        /// <param name="KoordonnatorID">a koordonator id-ja</param>
        /// <returns>vissza adja a torol SQL parancs eredmenyet</returns>

        public string TorolKoordonator(int KoordonnatorID)
        {
            string query = "DELETE FROM Koordonator WHERE KoordonatorID = " + KoordonnatorID;


            return ExecuteNonQuery(query); 
        }
    }
}
